# Python多态及用法详解
class CLanguage:
    def say(self):
        print("赋值的是 CLanguage 类的实例对象")

class CPython:
    def say(self):
        print("赋值的是 CPython 类的实例对象")
a = CLanguage()
a.say()

a = CPython()
a.say()
print()

class CLanguage:
    def say(self):
        print("调用的是 CLanguage 类的 say 方法")

class CPython(CLanguage):
    def say(self):
        print("调用的是 CPython 类的 say 方法")

class CLinux(CLanguage):
    def say(self):
        print("调用的是 CLinux 类的 say 方法")

a = CLanguage()
a.say()

a = CPython()
a.say()

a = CLinux()
a.say()
print()

class WhoSay:
    def say(self, who):
        who.say()

class CLanguage:
    def say(self):
        print("调用的是 CLanguage 类的 say 方法")

class CPython(CLanguage):
    def say(self):
        print("调用的是 CPython 类的 say 方法")

class CLinux(CLanguage):
    def say(self):
        print("调用的是 CLinux 类的 say 方法")

a = WhoSay()
# 调用 CLanguage 类的 say() 方法
a.say(CLanguage())
# 调用 CPython 类的 say() 方法
a.say(CPython())
# 调用 CLinux 类的 say() 方法
a.say(CLinux())
